home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / asprog.EXE / DEVAM.ASM < prev    next >
Assembly Source File  |  1995-10-01  |  2KB  |  111 lines

  1. STDin   EQU     0
  2. MAXbuf  EQU     40000
  3. MAXX    EQU     80
  4. MAXY    EQU     24
  5.  
  6. Code    SEGMENT
  7. Assume  CS:Code , DS:Code , ES:Code
  8. ORG     100h
  9.  
  10. Main :  call    More
  11.         mov     ah,4ch
  12.         int     21h
  13.  
  14. More    Proc    NEAR
  15. MoreMN :call    ReadBuf
  16.         jnb     Read_ok
  17.         ret
  18. Read_ok:mov     cx,BufSize
  19.         mov     si,offset Buffer
  20. _loop : cmp     word ptr[si],0d0ah
  21.         jz      eoline
  22.         cmp     word ptr[si],0a0dh
  23.         jz      eoline
  24.         lodsb
  25.         mov     dl,al
  26.         mov     ah,2
  27.         int     21h
  28.         inc     NoX
  29.         cmp     NoX,MAXX
  30.         jnz     GoOnMr
  31.         inc     NoY
  32.         mov     NoX,0
  33.         cmp     NoY,MAXY
  34.         jz      typMore
  35. GoOnMr :loop    _loop
  36.         cmp     MoreBuf,1
  37.         jz      MoreMN
  38.         ret
  39. eoline :lodsb
  40.         mov     dl,al
  41.         mov     ah,2
  42.         int     21h
  43.         lodsb
  44.         mov     dl,al
  45.         mov     ah,2
  46.         int     21h
  47.         dec     cx
  48.         mov     NoX,0
  49.         inc     NoY
  50.         cmp     NoY,MAXY
  51.         jnz     GoOnMr
  52. typMore:push    cx si
  53.         mov     cx,TxtSize
  54.         mov     si,offset MoreStr
  55. Type_l: lodsb
  56.         mov     ah,2
  57.         mov     dl,al
  58.         int     21h
  59.         loop    Type_l
  60.         xor     ax,ax
  61.         int     16h
  62.         mov     ah,2
  63.         mov     dl,13
  64.         int     21h
  65.         mov     ah,2
  66.         mov     dl,10
  67.         int     21h
  68.         mov     NoX,0
  69.         mov     NoY,0
  70.         pop     si cx
  71.         jmp     GoOnMr
  72. More    ENDp
  73.  
  74.  
  75. ReadBuf Proc    NEAR
  76.         mov     ah,3fh
  77.         mov     bx,STDin
  78.         mov     cx,MAXbuf + 1
  79.         mov     dx,offset Buffer
  80.         int     21h
  81.         mov     BufSize,ax
  82.         cmp     ax,MAXbuf
  83.         jz      m_Bufer
  84.         cmp     ax,0
  85.         jz      no_read
  86.         mov     MoreBuf,0
  87.         jmp     short go_out
  88.         clc
  89. m_Bufer:mov     MoreBuf,1
  90.         clc
  91.         jmp     short go_out
  92. no_read:stc
  93. go_out :ret
  94.  
  95. ReadBuf ENDp
  96.  
  97. TxtBeg  EQU     THIS BYTE
  98. MoreStr DB      '─ Dahasì var.....'
  99. TxtSize EQU     $ - TxtBeg
  100.  
  101. NoX     DB      0
  102. NoY     DB      0
  103. BufSize DW      0
  104. MoreBuf DB      0
  105. Buffer  DB      MAXbuf DUP(?)
  106.  
  107.  
  108. Code    ENDs
  109.  
  110. END     Main
  111.